package cc.rengu.oltp.service.common.dao;

import cc.rengu.oltp.service.common.entity.RspCodeMap;

import java.util.List;
import java.util.Set;

/**
 * 应答码转换表操作接口
 * Created by 王成 on 2018/4/18.
 */
public interface RspCodeMapMapper {
    /**
     * 加载数据源的业务应答码映射关系
     *
     * @param dbPoolCashNode 数据源缓存节点名称
     * @param rspCodeMapList 业务响应码映射关系
     * @throws Exception 异常
     */
    void loadAllRespCodeMapInfo(Set<String> dbPoolCashNode, List<RspCodeMap> rspCodeMapList) throws Exception;

    /**
     * 加载数据源的业务应答码映射关系
     *
     * @param rspCodeMapList 业务响应码映射关系
     * @throws Exception 异常
     */
    void loadAllRespCodeMapInfo(List<RspCodeMap> rspCodeMapList) throws Exception;

    /**
     * 根据多法人标识获取错误码映射关系
     *
     * @param instId 多法人标识
     * @return 错误码映射关系
     * @throws Exception 异常
     */
    List<RspCodeMap> selectRespCodeMapInfoByInstId(String instId) throws Exception;

    /**
     * 根据源系统错误码查询所有对应的错误码映射关系
     *
     * @param instId     多法人标识
     * @param srcSysId   源系统标识
     * @param srcRspCode 源系统错误码
     * @return 错误码映射关系
     * @throws Exception 异常
     */
    List<RspCodeMap> selectRespCodeMapInfoBySrcRspCode(String instId, String srcSysId, String srcRspCode) throws Exception;

    /**
     * 根据主键查询错误码映射关系
     *
     * @param instId       多法人标识
     * @param srcSysId     源系统标识
     * @param srcRspCode   源系统错误码
     * @param rspCodeScene 错误码场景代码
     * @param dstSysId     目标系统标识
     * @param dstChannelId 目标系统渠道标识
     * @return 错误码映射关系
     * @throws Exception 异常
     */
    RspCodeMap selectRespCodeMapInfoByPrimaryKey(String instId, String srcSysId, String srcRspCode, String rspCodeScene, String dstSysId, String dstChannelId) throws Exception;
}
